package com.yangrong.thread.chapter1;

/**
 * 单例模式的懒加载
 * 
 * @author YangRong
 * @date 2020年6月3日
 */
public class SingletonObject2 {

	// 不在调用类的时候创建实例
//	private static final SingletonObject2 instance = new SingletonObject2();
	private static SingletonObject2 instance;

	private SingletonObject2() {
		// empty
	}

	// 在调用getInstance时创建实例
	// 多线程情况下存在问题，当thread1进行至if判断，放弃执行权，thread2进行至if判断，这种情况下会存在1个以上的实例
	public static SingletonObject2 getInstance() {
		if (null == instance)
			instance = new SingletonObject2();
		return SingletonObject2.instance;
	}

}
